﻿using System;

namespace Kyoh.Lib.Component
{
    /// <summary>プロパティのサイズ調整を設定する属性を定義します。</summary>
    [AttributeUsage(AttributeTargets.Property)]
    public class DisplayAutoSizeAttribute : Attribute
    {
        /// <summary><see cref="DisplayAutoSizeAttribute"/> のデフォルト値。実態は <c>null</c>。</summary>
        public static readonly DisplayAutoSizeAttribute Default = null;
        /// <summary><see cref="DisplayAutoSizeAttribute"/> クラスの新しいインスタンスを初期化します。</summary>
        /// <param name="autoSizeMode">自動サイズ調整のモード。</param>
        public DisplayAutoSizeAttribute(DisplayAutoSizeMode autoSizeMode)
        {
            this.AutoSizeMode = autoSizeMode;
            this.FillWeight = 100F;
        }
        /// <summary>自動サイズ調整のモードを取得します。</summary>
        public DisplayAutoSizeMode AutoSizeMode { get; private set; }
        /// <summary><see cref="DisplayAutoSizeAttribute.AutoSizeMode"/> が<c>DisplayAutoSizeMode.Fill</c> の場合に使用する、サイズの占有割合を取得・設定します。</summary>
        public float FillWeight { get; set; }
    }
}
